import os
import cv2

def batch_invert_images(input_dir, output_dir):
    """
    对指定目录中的所有图片进行颜色反转并保存到输出目录。

    :param input_dir: 输入图片目录路径
    :param output_dir: 输出图片目录路径
    """
    # 确保输出目录存在
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    # 遍历输入目录中的图片文件
    for file_name in os.listdir(input_dir):
        input_path = os.path.join(input_dir, file_name)
        output_path = os.path.join(output_dir, file_name)

        # 检查文件是否为图片格式
        if file_name.endswith(('.png', '.jpg', '.jpeg', '.bmp', '.tiff')):
            try:
                # 读取图片
                image = cv2.imread(input_path, cv2.IMREAD_COLOR)
                if image is not None:
                    # 颜色反转
                    inverted_image = cv2.bitwise_not(image)
                    # 保存反转后的图片
                    cv2.imwrite(output_path, inverted_image)
                    print(f"Inverted and saved: {output_path}")
                else:
                    print(f"Failed to read image: {input_path}")
            except Exception as e:
                print(f"Error processing file {input_path}: {e}")
        else:
            print(f"Skipped non-image file: {file_name}")

# 示例目录
input_dir = r"corner2"  # 替换为实际的输入图片目录路径
output_dir = r"corner"  # 替换为实际的输出目录路径

# 批量处理
batch_invert_images(input_dir, output_dir)
